import java.util.*;
public class Main {
    /*给你一个整数数组 nums ，你需要找出一个 连续子数组 ，
    如果对这个子数组进行升序排序，那么整个数组都会变为升序排序。
    请你找出符合题意的 最短 子数组，并输出它的长度。*/
    public static int seekindex(int[] nums) {
        int[] arr= nums.clone();//复制原数组
        Arrays.sort(arr);//排序
        int left=0,right=nums.length-1;
        //与排序后不同的位置即为该区间
        while(left<=right&&arr[left]==nums[left]){
            left++;
        }
        while(left<=right&&arr[right]==nums[right]){
            right--;
        }
        return right-left+1;
    }
    public static void main(String[] args) {
       Scanner sc=new Scanner(System.in);
       int n=sc.nextInt();
       int[] nums=new int[n];
       for(int i=0;i<n;i++){
           nums[i]=sc.nextInt();
       }
       int len=seekindex(nums);
        System.out.println(len);
    }
}